package com.ihr360.oneclick.service;

import com.ihr360.oneclick.entity.OneClickTerm;
import com.ihr360.oneclick.entity.RowHeaderColumn;
import com.ihr360.oneclick.request.SearchRequest;
import com.ihr360.oneclick.vo.PageData;

import java.util.List;

/**
 * @author tom
 * @date 17-12-18
 */
public interface OneClickTermService {

    /**
     * 获取一键系列配置列表 （分页）
     *
     * @param companyId 公司Id
     * @param searchRequest 参数
     * @return page data
     */
    PageData<OneClickTerm> getPageData(String companyId, SearchRequest searchRequest);

    /**
     * 根据 enable 查询list
     *
     * @param companyId 公司Id
     * @param enable 启用状态
     * @return OneClickTerm list
     */
    List<OneClickTerm> getTermListByEnable(String companyId, boolean enable);

    /**
     * 根据Id获取term
     *
     * @param termId OneClickTermDto.id
     * @return OneClickTerm
     */
    OneClickTerm getOneClickTermById(String termId);

    /**
     * 保存 OneClickTerm
     *
     * @param term OneClickTermDto
     * @return OneClickTermDto
     */
    OneClickTerm saveOneClickTerm(OneClickTerm term);

    /**
     * 删除
     * 状态为禁用且没有发送过消息 可删除
     *
     * @param  companyId 公司Id
     * @param termId OneClickTermDto.id
     */
    void deleteOneClickTerm(String companyId, String termId);

    /**
     * 获取固定列
     * notes: 下载导入模板可调用 按照模板顺序返回
     *
     * @param termId OneClickTermDto.id
     * @param  local 语言
     * @return column list
     */
    List<RowHeaderColumn> getSpreadSheetColumn(String termId, String local);

    /**
     * 修改启用状态
     * @param termId OneClickTermDto.id
     * @param enable true 启用， false 禁用
     */
    void modifyOneClickTermEnable(String termId, boolean enable);


}
